2.6.6 - Práce s datovými typy
V této části se podíváme blíže na práci s datovými typy. Jazyk VAL3 obsahuje celou řadu instrukcí pro práci s datovými typy. U numerických proměnných se jedná zejmána o instrukce pro výpočet různých matematických operací. Pro datový typ string jsou k dispozici instukce pro práci s řetězcem, jako je nahrazení, vyhledání či smazání znaků. Každý typ má tedy své vlastní instrukce, se kterýma může pracovat, a které mají požadované návratové hodnoty.
Instrukce pro matematické operace
Funkce sinus
SyntaxeVrací sinus z úhlu nAngle, který je zadán ve stupních.
PříkladFunkce kosinus
SyntaxeVrací kosinus z úhlu nAngle, který je zadán ve stupních.
PříkladFunkce tangens
SyntaxeVrací tangens z úhlu nAngle, který je zadán ve stupních.
PříkladFunkce arkus sinus
SyntaxeVrací hodnotu úhlu v rozmezí -90° až +90°. Hodnota nValue musí být v intervalu < -1 ; 1 >, v opačném případě je zobrazeno chybové hlášení.
PříkladFunkce arkus kosinus
SyntaxeVrací hodnotu úhlu v rozmezí -90° až +90°. Hodnota nValue musí být v intervalu < -1 ; 1 >, v opačném případě je zobrazeno chybové hlášení.
PříkladFunkce arkus tangens
SyntaxeVrací hodnotu úhlu v rozmezí -90° až +90°.
PříkladAbsolutní hodnota
SyntaxeVrací kladnou (tedy absolutní) hodnotu proměnné nValue.
PříkladOdmocnina
SyntaxeVrací druhou odmocninu z čísla nValue. Pokud je proměnná záporná, vrací chybu.
PříkladExponenciální funkce
SyntaxeVrací mocninu eulerova čísla e. Tedy výsledek enValue.
PříkladMocnina
SyntaxeVrací nY-tou mocninu čísla nX, tedy nXnY.
PříkladPřirozený logaritmus
SyntaxeVrací přirozený logaritmus čísla nValue. Pokud je nValue menší nebo rovno nule, zobrazí se chyba.
PříkladLogaritmus
SyntaxeVrací logaritmus o základu 10 čísla nValue. Pokud je nValue menší nebo rovno nule, zobrazí se chyba.
PříkladZaokrouhlení
SyntaxeVrací číslo zaokrouhlené na nejbližší celočíselnou hodnotu.
Příkladputln(round(2.32))//zobrazí 2
Zaokrouhlení nahoru
SyntaxeVrací číslo zaokrouhlené nahoru na nejbližší celočíselnou hodnotu.
Příkladputln(roundUp(2.58))//zobrazí 3
Zaokrouhlení dolů
SyntaxeVrací číslo zaokrouhlené dolů na nejbližší celočíselnou hodnotu.
Příkladputln(roundDown(2.58))//zobrazí 2
Minimum
SyntaxePorovná proměnné nX a nY a vrátí měnší z nich.
PříkladMaximum
SyntaxePorovná proměnné nX a nY a vrátí větší z nich.
PříkladOmezení
SyntaxeZjistí zda je proměnná nValue v intervalu <nX, nY>. Pokud ano, vrací nValue, jinak vrací omezenou hodnotu.
Příkladputln(limit(15, -10, 10))//zobrazí 10
putln(limit(-15, -10, 10))//zobrazí -10
Výběr proměnné
SyntaxePokud je vyhodnocena proměnná bCondition jako pravda, vrací funkce hodnotu proměnné nValue1, jinak vrací nValue2. Dá se tedy říci, že se jedná o zjednodušenou verzi podmínky if.
Příklad//funkce je stejná jako:
if(bPodminka)
putln(x)
else
putln(y)
Instrukce pro práci s řetězcem
Převod na řetězec
SyntaxeTato instrukce převede číselnou proměnnou nValue na řetězec string. Řetězec sFormat určuje styl zobrazení čísla. Formát je zadáván ve formě "size.precision", kde size je celkový počet míst před desetinnou čárkou a precision určuje počet desetinných míst.
Příkladputln(toString("8", nPi))//zobrazí " 3"
putln(toString("8.4", nPi))//zobrazí " 3.1416"
putln(toString("8.4", 2.70001))//zobrazí 2.7
putln(toString("", nPi))//zobrazí 3
putln(toString("1.2", 1234.1234))//zobrazí 1234.12
Převod na číslo
SyntaxePřečtě první číslo z proměnné sString typu string a uloží jej do proměnné nValue. Zbylá část řetězce je vrácena návratovou hodnotou. Pokud řetězec sString neobrahuje žádné číslo nebo se před číslem vyskytují nenumerické znaky, je nastavena proměnná bReport na false, jinak je bReport true.
Příkladnum bOk
01:putln(toNum("10 20 30", nVal, bOk))//zobrazí "20 30"
02:putln(toNum("a10 20 30", nVal, bOk))//zobrazí "a10 20 30"
03:putln(toNum("10 2a0 30", nVal, bOk))//zobrazí "2a0 30"
Na řádku číslo jedna uloží instrukce toNum první čílo, tedy 10, do
proměnné nVal a nastaví bOk na true a nakonec vrací původní řetězec ořezaný
o číslo 10, tedy "20 30", který bude zobrazen.
Instrukce toNum na řádku 2 pouze nastaví bOk na false a vrátí celý řetězec
protože začíná písmenem a nelze tedy převést na číslo.
Řádek číslo 3 nastaví nVal na hodnotu 10 protože znak je až za ním, tedy bOk
je rovno true a návratová hodnota je "2a0 30".
Znak
SyntaxePodle čísla nValue vrací znak, který odpovídá tomuto číslu v tabulce unicode. Tato tabulka obsahuje 128 znaků jejichž seznam můžete najít na www.unicode.com. Prvních 32 znaků je netisknutelných, tudíž nejdou zobrazit, protože převážně symbolizují stisk některých speciálních kláves.
PříkladČíslo znaku
SyntaxeUloží číslo znaku sText do proměnné nPosition. Vrací -1 pokud je proměnná nPosition záporná nebo větší než je rozsah unicode tabulky.
PříkladČtení z leva
SyntaxeVrací řetězec o délce nSize, který je získán od pozice 0 v proměnné sText. Je-li nSize větší než délka řetězce, vrací celý řetězec. Pokud je nSize záporné je generována chyba.
PříkladČtení z prava
SyntaxeRozdíl oproti instrukci left je, že tato instrukce vrací řetězec z prava. Tedy vrací posledních nSize znaků z řetězce sText.
Čtení z pozice
SyntaxeVrací nSize znaků z řetězce sText a od pozice nPozition. Pokud je nSize větší než velikost sText, vrací všechny znaky od pozice nPozition. Je-li nSize nebo nPozition záporné, generuje chybu.
Vložení
SyntaxeVračí řetězec sText, do kterého byl vložen řetězec sInsertion na pozici nPozition. Pokud je nPozition větší než délka sText, je řetězec sInsertion vložen až na konec. Délka řetězce nesmí přesáhnout 128B, v opačném případě bude řetězec ořezán. Je-li nPozition záporné, generuje chybu.
Mazání
SyntaxeVráti řetězec sText, ze kterého bylo smazáno nSize znaků z pozice nPozition. Pokud je nSize nebo nPozition záporené, generuje chybu.
Nahrazení
SyntaxeNahradí nSize znaků na pozici nPozition řetězcem sReplacement v řetězci sText. Pokud je nPozition větší než délka sText, vrátí nezměněné sText. Pokud je nSize nebo nPozition záporné, generuje chybu.
Hledání
SyntaxeHledá řetězec sText2 v řetězci sText1 a pokud jej najde vrací jeho pozici. Pokud sText1 neobsahuje sText2 vrací -1.
Délka řetězce
SyntaxeVrací počet znaků, které obsahuje řetězec sText.
RS40B - uživatelský manuál